-; UltimateKEYS SW (Scroll Lock) (for AutoHotkey v2.0).ahk - 2021-11-18
+; UltimateKEYS SW (Scroll Lock) (for AutoHotkey v2.0).ahk - 2022-02-04
-; Created by : Pieter Degroote
+; Website : www.ultimatekeys.info (pieter-degroote.github.io/UltimateKEYS/)
-; License : GNU General Public License Version 3
+; License : GNU General Public License Version 3
-; GitHub : https://github.com/pieter-degroote/UltimateKEYS
+; GitHub : github.com/pieter-degroote/UltimateKEYS
; Requirements :
-; Keyboard layout (on Windows OS) : US QWERTY
+; Keyboard layout (on Windows) : US QWERTY
-; AutoHotkey v2.0 (https://www.autohotkey.com/)
+; AutoHotkey v2.0 (www.autohotkey.com)
dkDotAbove["O"] := "{u+022e}" ; (Ȯ) O with dot above
dkDotAbove["p"] := "{u+1e57}" ; (ṗ) p with dot above
dkDotAbove["P"] := "{u+1e56}" ; (Ṗ) P with dot above
+dkDotAbove["q"] := "{u+1e9b}" ; (ẛ) long s with dot above
dkDotAbove["r"] := "{u+1e59}" ; (ṙ) r with dot above
dkDotAbove["R"] := "{u+1e58}" ; (Ṙ) R with dot above
dkDotAbove["s"] := "{u+1e61}" ; (ṡ) s with dot above
dkDotAbove["*"] := "{u+2191}" ; (↑) upwards arrow
dkDotAbove["("] := "{u+2197}" ; (↗) north east arrow
dkDotAbove[")"] := "{u+2194}" ; (↔) left right arrow
-dkDotAbove[chr(0x00e5)] := "{u+1e98}" ; (å -> ẘ) w with ring above
-dkDotAbove[chr(0x00fb)] := "{u+1e99}" ; (û -> ẙ) y with ring above
dkDotAbove[" "] := "{u+02d9}" ; (˙) dot above
dkMacronStroke["O"] := "{u+014c}" ; (Ō) O with macron
dkMacronStroke["p"] := "{u+1d7d}" ; (ᵽ) p with stroke
dkMacronStroke["P"] := "{u+2c63}" ; (Ᵽ) P with stroke
+dkMacronStroke["q"] := "{u+01ed}" ; (ǭ) o with ogonek and macron
+dkMacronStroke["Q"] := "{u+01ec}" ; (Ǭ) O with ogonek and macron
dkMacronStroke["r"] := "{u+024d}" ; (ɍ) r with stroke
dkMacronStroke["R"] := "{u+024c}" ; (Ɍ) R with stroke
dkMacronStroke["t"] := "{u+0167}" ; (ŧ) t with stroke
dkMacronStroke["U"] := "{u+016a}" ; (Ū) U with macron
dkMacronStroke["v"] := "{u+01d6}" ; (ǖ) u with diaeresis and macron
dkMacronStroke["V"] := "{u+01d5}" ; (Ǖ) U with diaeresis and macron
+dkMacronStroke["w"] := "{u+01e3}" ; (ǣ) ae with macron
+dkMacronStroke["W"] := "{u+01e2}" ; (Ǣ) AE with macron
dkMacronStroke["y"] := "{u+0233}" ; (ȳ) y with macron
dkMacronStroke["Y"] := "{u+0232}" ; (Ȳ) Y with macron
dkMacronStroke["z"] := "{u+01b6}" ; (ƶ) z with stroke
dkMacronStroke[")"] := "{u+21b9}" ; (↹) leftwards arrow to bar over rightwards arrow to bar
dkMacronStroke[chr(0x00e6)] := "{u+01e3}" ; (æ -> ǣ) ae with macron
dkMacronStroke[chr(0x00c6)] := "{u+01e2}" ; (Æ -> Ǣ) AE with macron
-dkMacronStroke[chr(0x00e9)] := "{u+1e21}" ; (é -> ḡ) g with macron
-dkMacronStroke[chr(0x00c9)] := "{u+1e20}" ; (É -> Ḡ) G with macron
-dkMacronStroke[chr(0x00ef)] := "{u+0268}" ; (ï -> ɨ) i with stroke
-dkMacronStroke[chr(0x00cf)] := "{u+0197}" ; (Ï -> Ɨ) I with stroke
-dkMacronStroke[chr(0x00f8)] := "{u+019a}" ; (ø -> ƚ) l with bar
-dkMacronStroke[chr(0x00d8)] := "{u+023d}" ; (Ø -> Ƚ) L with bar
-dkMacronStroke[chr(0x00f6)] := "{u+01ed}" ; (ö -> ǭ) o with ogonek and macron
-dkMacronStroke[chr(0x00d6)] := "{u+01ec}" ; (Ö -> Ǭ) O with ogonek and macron
-dkMacronStroke[chr(0x00fc)] := "{u+0289}" ; (ü -> ʉ) u with bar
-dkMacronStroke[chr(0x00dc)] := "{u+0244}" ; (Ü -> Ʉ) U with bar
-dkMacronStroke[chr(0x00fb)] := "{u+024f}" ; (û -> ɏ) y with stroke
-dkMacronStroke[chr(0x00db)] := "{u+024e}" ; (Û -> Ɏ) Y with stroke
dkMacronStroke[" "] := "{u+00af}" ; (¯) macron
dkCedillaOgonek["D"] := "{u+1e10}" ; (Ḑ) D with cedilla
dkCedillaOgonek["e"] := "{u+0119}" ; (ę) e with ogonek
dkCedillaOgonek["E"] := "{u+0118}" ; (Ę) E with ogonek
+dkCedillaOgonek["f"] := "{u+0229}" ; (ȩ) e with cedilla
+dkCedillaOgonek["F"] := "{u+0228}" ; (Ȩ) E with cedilla
dkCedillaOgonek["g"] := "{u+0123}" ; (ģ) g with cedilla
dkCedillaOgonek["G"] := "{u+0122}" ; (Ģ) G with cedilla
dkCedillaOgonek["h"] := "{u+1e29}" ; (ḩ) h with cedilla
dkCedillaOgonek["T"] := "{u+0162}" ; (Ţ) T with cedilla
dkCedillaOgonek["u"] := "{u+0173}" ; (ų) u with ogonek
dkCedillaOgonek["U"] := "{u+0172}" ; (Ų) U with ogonek
+dkCedillaOgonek["w"] := "{u+01bf}" ; (ƿ) small letter wynn
+dkCedillaOgonek["W"] := "{u+01f7}" ; (Ƿ) capital letter wynn
+dkCedillaOgonek["y"] := "{u+021d}" ; (ȝ) small letter yogh
+dkCedillaOgonek["Y"] := "{u+021c}" ; (Ȝ) capital letter yogh
dkCedillaOgonek["1"] := "{u+2013}" ; (–) en dash
dkCedillaOgonek["2"] := "{u+2014}" ; (—) em dash
dkCedillaOgonek["3"] := "{u+2015}" ; (―) horizontal bar
dkCedillaOgonek["("] := "{u+2012}" ; (‒) figure dash
dkCedillaOgonek[")"] := "{u+00ad}" ; () soft hyphen
dkCedillaOgonek["-"] := "{u+2011}" ; (‑) non-breaking hyphen
-dkCedillaOgonek["."] := "{u+02db}" ; (˛) ogonek
-dkCedillaOgonek[chr(0x00eb)] := "{u+0229}" ; (ë -> ȩ) e with cedilla
-dkCedillaOgonek[chr(0x00cb)] := "{u+0228}" ; (Ë -> Ȩ) E with cedilla
-dkCedillaOgonek[chr(0x00f6)] := "{u+01ed}" ; (ö -> ǭ) o with ogonek and macron
-dkCedillaOgonek[chr(0x00d6)] := "{u+01ec}" ; (Ö -> Ǭ) O with ogonek and macron
dkCedillaOgonek[" "] := "{u+00b8}" ; (¸) cedilla
dkBreveSpecial["F"] := "{u+018f}" ; (Ə) capital letter schwa (Azerbaijani)
dkBreveSpecial["g"] := "{u+011f}" ; (ğ) g with breve
dkBreveSpecial["G"] := "{u+011e}" ; (Ğ) G with breve
-dkBreveSpecial["h"] := "{u+a727}" ; (ꜧ) small letter heng
-dkBreveSpecial["H"] := "{u+a726}" ; (Ꜧ) capital letter heng
+dkBreveSpecial["h"] := "{u+0260}" ; (ɠ) g with hook
+dkBreveSpecial["H"] := "{u+0193}" ; (Ɠ) G with hook
dkBreveSpecial["i"] := "{u+012d}" ; (ĭ) i with breve
dkBreveSpecial["I"] := "{u+012c}" ; (Ĭ) I with breve
dkBreveSpecial["j"] := "{u+0133}" ; (ij) ligature ij
dkBreveSpecial["O"] := "{u+014e}" ; (Ŏ) O with breve
dkBreveSpecial["p"] := "{u+01a5}" ; (ƥ) p with hook
dkBreveSpecial["P"] := "{u+01a4}" ; (Ƥ) P with hook
+dkBreveSpecial["q"] := "{u+024b}" ; (ɋ) q with hook tail
+dkBreveSpecial["Q"] := "{u+024a}" ; (Ɋ) Q with hook tail
dkBreveSpecial["r"] := "{u+027d}" ; (ɽ) r with tail
dkBreveSpecial["R"] := "{u+2c64}" ; (Ɽ) R with tail
dkBreveSpecial["s"] := "{u+0219}" ; (ș) s with comma below (Romanian)
dkBreveSpecial["T"] := "{u+021a}" ; (Ț) T with comma below (Romanian)
dkBreveSpecial["u"] := "{u+016d}" ; (ŭ) u with breve
dkBreveSpecial["U"] := "{u+016c}" ; (Ŭ) U with breve
-dkBreveSpecial["v"] := "{u+028a}" ; (ʊ) latin small letter upsilon
-dkBreveSpecial["V"] := "{u+01b1}" ; (Ʊ) latin capital letter upsilon
-dkBreveSpecial["w"] := "{u+01bf}" ; (ƿ) small letter wynn
-dkBreveSpecial["W"] := "{u+01f7}" ; (Ƿ) capital letter wynn
-dkBreveSpecial["y"] := "{u+021d}" ; (ȝ) small letter yogh
-dkBreveSpecial["Y"] := "{u+021c}" ; (Ȝ) capital letter yogh
+dkBreveSpecial["v"] := "{u+028b}" ; (ʋ) v with hook
+dkBreveSpecial["V"] := "{u+01b2}" ; (Ʋ) V with hook
+dkBreveSpecial["w"] := "{u+2c73}" ; (ⱳ) w with hook
+dkBreveSpecial["W"] := "{u+2c72}" ; (Ⱳ) W with hook
+dkBreveSpecial["y"] := "{u+01b4}" ; (ƴ) y with hook
+dkBreveSpecial["Y"] := "{u+01b3}" ; (Ƴ) Y with hook
dkBreveSpecial["z"] := "{u+0225}" ; (ȥ) z with hook
dkBreveSpecial["Z"] := "{u+0224}" ; (Ȥ) Z with hook
dkBreveSpecial["3"] := "{u+0292}" ; (ʒ) small letter ezh
dkBreveSpecial["#"] := "{u+01b7}" ; (Ʒ) capital letter ezh
-dkBreveSpecial[chr(0x00e4)] := "{u+0252}" ; (ä -> ɒ) latin small letter turned alpha
-dkBreveSpecial[chr(0x00c4)] := "{u+2c70}" ; (Ä -> Ɒ) latin capital letter turned alpha
-dkBreveSpecial[chr(0x00eb)] := "{u+01dd}" ; (ë -> ǝ) small turned e
-dkBreveSpecial[chr(0x00cb)] := "{u+018e}" ; (Ë -> Ǝ) capital reversed E
-dkBreveSpecial[chr(0x00e9)] := "{u+0263}" ; (é -> ɣ) latin small gamma
-dkBreveSpecial[chr(0x00c9)] := "{u+0194}" ; (É -> Ɣ) latin capital gamma
-dkBreveSpecial[chr(0x00f1)] := "{u+0272}" ; (ñ -> ɲ) n with left hook
-dkBreveSpecial[chr(0x00d1)] := "{u+019d}" ; (Ñ -> Ɲ) N with left hook
-dkBreveSpecial[chr(0x00f6)] := "{u+0254}" ; (ö -> ɔ) small open o
-dkBreveSpecial[chr(0x00d6)] := "{u+0186}" ; (Ö -> Ɔ) capital open O
-dkBreveSpecial[chr(0x00e5)] := "{u+2c73}" ; (å -> ⱳ) w with hook
-dkBreveSpecial[chr(0x00c5)] := "{u+2c72}" ; (Å -> Ⱳ) W with hook
dkBreveSpecial[" "] := "{u+02d8}" ; (˘) breve
; Dead Key : Acute Accent
global dkAcuteAccent := Map()
-dkAcuteAccent["a"] := "{u+0251}" ; (ɑ) latin small letter alpha
-dkAcuteAccent["A"] := "{u+2c6d}" ; (Ɑ) latin capital letter alpha
+dkAcuteAccent["a"] := "{u+01fb}" ; (ǻ) a with ring above and acute
+dkAcuteAccent["A"] := "{u+01fa}" ; (Ǻ) A with ring above and acute
dkAcuteAccent["b"] := "{u+0253}" ; (ɓ) b with hook
dkAcuteAccent["B"] := "{u+0181}" ; (Ɓ) B with hook
dkAcuteAccent["c"] := "{u+0107}" ; (ć) c with acute
dkAcuteAccent["C"] := "{u+0106}" ; (Ć) C with acute
dkAcuteAccent["d"] := "{u+0257}" ; (ɗ) d with hook
dkAcuteAccent["D"] := "{u+018a}" ; (Ɗ) D with hook
-dkAcuteAccent["e"] := "{u+025b}" ; (ɛ) small letter open e (latin small epsilon)
-dkAcuteAccent["E"] := "{u+0190}" ; (Ɛ) capital letter open E (latin capital epsilon)
+dkAcuteAccent["e"] := "{u+01fd}" ; (ǽ) ae with acute
+dkAcuteAccent["E"] := "{u+01fc}" ; (Ǽ) AE with acute
dkAcuteAccent["f"] := "{u+0192}" ; (ƒ) f with hook
dkAcuteAccent["F"] := "{u+0191}" ; (Ƒ) F with hook
dkAcuteAccent["g"] := "{u+01f5}" ; (ǵ) g with acute
dkAcuteAccent["G"] := "{u+01f4}" ; (Ǵ) G with acute
dkAcuteAccent["h"] := "{u+0266}" ; (ɦ) h with hook
dkAcuteAccent["H"] := "{u+a7aa}" ; (Ɦ) H with hook
-dkAcuteAccent["i"] := "{u+0269}" ; (ɩ) latin small letter iota
-dkAcuteAccent["I"] := "{u+0196}" ; (Ɩ) latin capital letter iota
+dkAcuteAccent["i"] := "{u+01ff}" ; (ǿ) o with stroke and acute
+dkAcuteAccent["I"] := "{u+01fe}" ; (Ǿ) O with stroke and acute
dkAcuteAccent["j"] := "{u+0133}" ; (ij) ligature ij
dkAcuteAccent["J"] := "{u+0132}" ; (IJ) ligature IJ
dkAcuteAccent["k"] := "{u+1e31}" ; (ḱ) k with acute
dkAcuteAccent["O"] := "{u+0150}" ; (Ő) O with double acute
dkAcuteAccent["p"] := "{u+1e55}" ; (ṕ) p with acute
dkAcuteAccent["P"] := "{u+1e54}" ; (Ṕ) P with acute
-dkAcuteAccent["q"] := "{u+024b}" ; (ɋ) q with hook tail
-dkAcuteAccent["Q"] := "{u+024a}" ; (Ɋ) Q with hook tail
+dkAcuteAccent["q"] := "{u+1e09}" ; (ḉ) c with cedilla and acute
+dkAcuteAccent["Q"] := "{u+1e08}" ; (Ḉ) C with cedilla and acute
dkAcuteAccent["r"] := "{u+0155}" ; (ŕ) r with acute
dkAcuteAccent["R"] := "{u+0154}" ; (Ŕ) R with acute
dkAcuteAccent["s"] := "{u+015b}" ; (ś) s with acute
dkAcuteAccent["T"] := "{u+01ac}" ; (Ƭ) T with hook
dkAcuteAccent["u"] := "{u+0171}" ; (ű) u with double acute
dkAcuteAccent["U"] := "{u+0170}" ; (Ű) U with double acute
-dkAcuteAccent["v"] := "{u+028b}" ; (ʋ) v with hook
-dkAcuteAccent["V"] := "{u+01b2}" ; (Ʋ) V with hook
+dkAcuteAccent["v"] := "{u+01d8}" ; (ǘ) u with diaeresis and acute
+dkAcuteAccent["V"] := "{u+01d7}" ; (Ǘ) U with diaeresis and acute
dkAcuteAccent["w"] := "{u+1e83}" ; (ẃ) w with acute
dkAcuteAccent["W"] := "{u+1e82}" ; (Ẃ) W with acute
dkAcuteAccent["y"] := "{u+00fd}" ; (ý) y with acute
dkAcuteAccent["6"] := "{u+273d}" ; (✽) heavy teardrop-spoked asterisk
dkAcuteAccent["7"] := "{u+273b}" ; (✻) teardrop-spoked asterisk
dkAcuteAccent["8"] := "{u+266a}" ; (♪) eighth note
-dkAcuteAccent["9"] := "{u+2706}" ; (✆) telephone location sign
-dkAcuteAccent["0"] := "{u+2709}" ; (✉) envelope
dkAcuteAccent["@"] := "{u+266b}" ; (♫) beamed eighth notes
dkAcuteAccent["#"] := "{u+2042}" ; (⁂) asterism
dkAcuteAccent["$"] := "{u+2605}" ; (★) black star
dkAcuteAccent["^"] := "{u+273d}" ; (✽) heavy teardrop-spoked asterisk
dkAcuteAccent["&"] := "{u+273b}" ; (✻) teardrop-spoked asterisk
dkAcuteAccent["*"] := "{u+266a}" ; (♪) eighth note
-dkAcuteAccent["("] := "{u+2706}" ; (✆) telephone location sign
-dkAcuteAccent[")"] := "{u+2709}" ; (✉) envelope
dkAcuteAccent[chr(0x00e5)] := "{u+01fb}" ; (å -> ǻ) a with ring above and acute
dkAcuteAccent[chr(0x00c5)] := "{u+01fa}" ; (Å -> Ǻ) A with ring above and acute
dkAcuteAccent[chr(0x00e6)] := "{u+01fd}" ; (æ -> ǽ) ae with acute
dkAcuteAccent[chr(0x00d8)] := "{u+01fe}" ; (Ø -> Ǿ) O with stroke and acute
dkAcuteAccent[chr(0x00e7)] := "{u+1e09}" ; (ç -> ḉ) c with cedilla and acute
dkAcuteAccent[chr(0x00c7)] := "{u+1e08}" ; (Ç -> Ḉ) C with cedilla and acute
-dkAcuteAccent[chr(0x00e9)] := "{u+0260}" ; (é -> ɠ) g with hook
-dkAcuteAccent[chr(0x00c9)] := "{u+0193}" ; (É -> Ɠ) G with hook
-dkAcuteAccent[chr(0x00ec)] := "{u+028c}" ; (ì -> ʌ) latin small letter turned v
-dkAcuteAccent[chr(0x00cc)] := "{u+0245}" ; (Ì -> Ʌ) latin capital letter turned V
-dkAcuteAccent[chr(0x00fb)] := "{u+01b4}" ; (û -> ƴ) y with hook
-dkAcuteAccent[chr(0x00db)] := "{u+01b3}" ; (Û -> Ƴ) Y with hook
-dkAcuteAccent[chr(0x00f6)] := "{u+01a1}" ; (ö -> ơ) o with horn
-dkAcuteAccent[chr(0x00d6)] := "{u+01a0}" ; (Ö -> Ơ) O with horn
-dkAcuteAccent[chr(0x00fc)] := "{u+01b0}" ; (ü -> ư) u with horn
-dkAcuteAccent[chr(0x00dc)] := "{u+01af}" ; (Ü -> Ư) U with horn
dkAcuteAccent[" "] := "{u+00b4}" ; (´) acute accent
dkDiaeresis["t"] := "{u+1e97}" ; (ẗ) t with diaeresis
dkDiaeresis["u"] := "{u+00fc}" ; (ü) u with diaeresis
dkDiaeresis["U"] := "{u+00dc}" ; (Ü) U with diaeresis
-dkDiaeresis["v"] := "{u+01d8}" ; (ǘ) u with diaeresis and acute
-dkDiaeresis["V"] := "{u+01d7}" ; (Ǘ) U with diaeresis and acute
dkDiaeresis["w"] := "{u+1e85}" ; (ẅ) w with diaeresis
dkDiaeresis["W"] := "{u+1e84}" ; (Ẅ) W with diaeresis
dkDiaeresis["x"] := "{u+1e8d}" ; (ẍ) x with diaeresis
dkTilde["V"] := "{u+1e7c}" ; (Ṽ) V with tilde
dkTilde["y"] := "{u+1ef9}" ; (ỹ) y with tilde
dkTilde["Y"] := "{u+1ef8}" ; (Ỹ) Y with tilde
-dkTilde["g"] := "{u+ab36}" ; (ꬶ) cross-tailed g
-dkTilde["h"] := "{u+0267}" ; (ɧ) small letter heng with hook
-dkTilde["k"] := "{u+0138}" ; (ĸ) small letter kra
dkTilde["s"] := "{u+017f}" ; (ſ) small long s
dkTilde["1"] := "{u+2000}" ; en quad
dkTilde["2"] := "{u+2001}" ; em quad
dkSymbols["E"] := "{u+2709}" ; (✉) envelope
dkSymbols["f"] := "{u+2640}" ; (♀) Venus symbol (female)
dkSymbols["F"] := "{u+2640}" ; (♀) Venus symbol (female)
+dkSymbols["g"] := "{u+2740}" ; (❀) white florette
+dkSymbols["G"] := "{u+273f}" ; (✿) black florette
dkSymbols["h"] := "{u+2766}" ; (❦) floral heart
dkSymbols["H"] := "{u+2767}" ; (❧) rotated floral heart bullet
dkSymbols["i"] := "{u+22c4}" ; (⋄) diamond operator
dkSymbols["I"] := "{u+22c4}" ; (⋄) diamond operator
+dkSymbols["j"] := "{u+2126}" ; (Ω) ohm sign (backwards compatibility)
+dkSymbols["J"] := "{u+2126}" ; (Ω) ohm sign (backwards compatibility)
+dkSymbols["k"] := "{u+214d}" ; (⅍) aktieselskab
+dkSymbols["K"] := "{u+214d}" ; (⅍) aktieselskab
dkSymbols["l"] := "{u+2113}" ; (ℓ) script small l
dkSymbols["L"] := "{u+2112}" ; (ℒ) Laplace transform
dkSymbols["m"] := "{u+2642}" ; (♂) Mars symbol (male)
dkSymbols["q"] := "{u+201e}" ; („) double low-9 quotation mark
dkSymbols["Q"] := "{u+201a}" ; (‚) single low-9 quotation mark
dkSymbols["r"] := "{u+00ae}" ; (®) registered sign
-dkSymbols["R"] := "{u+2619}" ; (☙) reversed rotated floral heart bullet
+dkSymbols["R"] := "{u+211e}" ; (℞) prescription take (Recipere)
dkSymbols["s"] := "{u+2120}" ; (℠) service mark
dkSymbols["S"] := "{u+2120}" ; (℠) service mark
dkSymbols["t"] := "{u+2122}" ; (™) trademark symbol
dkSymbols["T"] := "{u+2706}" ; (✆) telephone location sign
dkSymbols["u"] := "{u+2610}" ; (☐) ballot box
-dkSymbols["U"] := "{u+2610}" ; (☐) ballot box
+dkSymbols["U"] := "{u+2619}" ; (☙) reversed rotated floral heart bullet
dkSymbols["v"] := "{u+2713}" ; (✓) check mark
dkSymbols["V"] := "{u+2714}" ; (✔) heavy check mark
+dkSymbols["w"] := "{u+26a0}" ; (⚠) warning sign
+dkSymbols["W"] := "{u+26a0}" ; (⚠) warning sign
dkSymbols["x"] := "{u+2717}" ; (✗) ballot x
dkSymbols["X"] := "{u+2718}" ; (✘) heavy ballot x
dkSymbols["y"] := "{u+2611}" ; (☑) ballot box with check
dkSymbols["+"] := "{u+00f7}" ; (÷) division sign
dkSymbols[";"] := "{u+263a}" ; (☺) white smiling face
dkSymbols[":"] := "{u+263b}" ; (☻) black smiling face
-dkSymbols["/"] := "{u+203c}" ; (‼) double exclamation mark
-dkSymbols["?"] := "{u+203d}" ; (‽) interrobang
+dkSymbols["."] := "{u+203c}" ; (‼) double exclamation mark
+dkSymbols[">"] := "{u+2e2e}" ; (⸮) reversed question mark
+dkSymbols["/"] := "{u+203d}" ; (‽) interrobang
+dkSymbols["?"] := "{u+2e18}" ; (⸘) inverted interrobang
dkSymbols["\"] := "{u+205e}" ; (⁞) vertical four dots
dkSymbols["|"] := "{u+00a6}" ; (¦) broken bar
-dkSymbols[chr(0x00e4)] := "{u+214d}" ; (ä -> ⅍) aktieselskab
-dkSymbols[chr(0x00c4)] := "{u+214d}" ; (Ä -> ⅍) aktieselskab
-dkSymbols[chr(0x00f6)] := "{u+2126}" ; (ö -> Ω) ohm sign (backwards compatibility)
-dkSymbols[chr(0x00d6)] := "{u+2126}" ; (Ö -> Ω) ohm sign (backwards compatibility)
-dkSymbols[chr(0x00bf)] := "{u+2e18}" ; (¿ -> ⸘) inverted interrobang
-dkSymbols[chr(0x2026)] := "{u+2e2e}" ; (… -> ⸮) reversed question mark
dkSymbols[" "] := "{u+00d7}" ; (×) multiplication sign
dkCurrency["C"] := "{u+20b5}" ; (₵) Ghanaian cedi
dkCurrency["d"] := "{u+20ab}" ; (₫) Vietnamese dong
dkCurrency["D"] := "{u+20af}" ; (₯) Greek drachma
+dkCurrency["e"] := "{u+20a2}" ; (₢) Brazilian cruzeiro
+dkCurrency["E"] := "{u+20a0}" ; (₠) euro-currency sign
dkCurrency["f"] := "{u+20a3}" ; (₣) French franc
dkCurrency["F"] := "{u+20a3}" ; (₣) French franc
dkCurrency["g"] := "{u+20b2}" ; (₲) Paraguayan guaraní
dkCurrency["G"] := "{u+20b2}" ; (₲) Paraguayan guaraní
dkCurrency["h"] := "{u+20b4}" ; (₴) Ukrainian hryvnia
dkCurrency["H"] := "{u+20b4}" ; (₴) Ukrainian hryvnia
+dkCurrency["i"] := "{u+20a4}" ; (₤) lira
+dkCurrency["I"] := "{u+20b6}" ; (₶) livre tournois
dkCurrency["k"] := "{u+20ad}" ; (₭) Laotian kip
dkCurrency["K"] := "{u+20ad}" ; (₭) Laotian kip
dkCurrency["l"] := "{u+20ba}" ; (₺) Turkish lira
dkCurrency["S"] := "{u+20b7}" ; (₷) spesmilo
dkCurrency["t"] := "{u+20ae}" ; (₮) Mongolian tögrög (tugrik)
dkCurrency["T"] := "{u+20b8}" ; (₸) Kazakh tenge
+dkCurrency["u"] := "{u+20a8}" ; (₨) rupee sign
+dkCurrency["U"] := "{u+20a8}" ; (₨) rupee sign
dkCurrency["w"] := "{u+20a9}" ; (₩) South Korean won
dkCurrency["W"] := "{u+20a9}" ; (₩) South Korean won
dkCurrency["x"] := "{u+00a4}" ; (¤) currency sign
dkCurrency["X"] := "{u+00a4}" ; (¤) currency sign
-dkCurrency[chr(0x00e7)] := "{u+20a2}" ; (ç -> ₢) Brazilian cruzeiro
-dkCurrency[chr(0x00c7)] := "{u+20a0}" ; (Ç -> ₠) euro-currency sign
-dkCurrency[chr(0x00f8)] := "{u+20a4}" ; (ø -> ₤) lira
-dkCurrency[chr(0x00d8)] := "{u+20b6}" ; (Ø -> ₶) livre tournois
-dkCurrency[chr(0x00ea)] := "{u+20a8}" ; (ê -> ₨) rupee sign
-dkCurrency[chr(0x00ca)] := "{u+20a8}" ; (Ê -> ₨) rupee sign
dkCurrency[" "] := "{u+00a4}" ; (¤) currency sign
dkMathSymbols["H"] := "{u+2285}" ; (⊅) not a superset of
dkMathSymbols["i"] := "{u+221e}" ; (∞) infinity symbol
dkMathSymbols["I"] := "{u+2111}" ; (ℑ) imaginary numbers
+dkMathSymbols["j"] := "{u+2245}" ; (≅) congruent to
+dkMathSymbols["J"] := "{u+2247}" ; (≇) not congruent to
dkMathSymbols["k"] := "{u+220b}" ; (∋) contains as member
dkMathSymbols["K"] := "{u+220c}" ; (∌) does not contain as member
dkMathSymbols["l"] := "{u+2225}" ; (∥) parallel to
dkMathSymbols["R"] := "{u+211d}" ; (ℝ) real numbers
dkMathSymbols["s"] := "{u+2229}" ; (∩) set intersection
dkMathSymbols["S"] := "{u+222b}" ; (∫) integral symbol
+dkMathSymbols["t"] := "{u+2300}" ; (⌀) diameter sign
+dkMathSymbols["T"] := "{u+2300}" ; (⌀) diameter sign
dkMathSymbols["u"] := "{u+222a}" ; (∪) set union
dkMathSymbols["U"] := "{u+2216}" ; (∖) set minus
+dkMathSymbols["v"] := "{u+2261}" ; (≡) identical to
+dkMathSymbols["V"] := "{u+2262}" ; (≢) not identical to
dkMathSymbols["w"] := "{u+2118}" ; (℘) Weierstrass elliptic function
dkMathSymbols["W"] := "{u+2118}" ; (℘) Weierstrass elliptic function
dkMathSymbols["z"] := "{u+21af}" ; (↯) downwards zigzag arrow
dkMathSymbols["``"] := "{u+2248}" ; (≈) almost equal to
dkMathSymbols["~"] := "{u+2248}" ; (≈) almost equal to
dkMathSymbols[","] := "{u+2264}" ; (≤) less-than or equal to
-dkMathSymbols["<"] := "{u+2264}" ; (≤) less-than or equal to
+dkMathSymbols["<"] := "{u+2a7d}" ; (⩽) less-than or slanted equal to
dkMathSymbols["."] := "{u+2265}" ; (≥) greater-than or equal to
-dkMathSymbols[">"] := "{u+2265}" ; (≥) greater-than or equal to
+dkMathSymbols[">"] := "{u+2a7e}" ; (⩾) greater-than or slanted equal to
dkMathSymbols["-"] := "{u+00b1}" ; (±) plus-minus sign
dkMathSymbols["_"] := "{u+2296}" ; (⊖) circled minus
dkMathSymbols["/"] := "{u+2298}" ; (⊘) circled division slash
dkMathSymbols["]"] := "{u+2057}" ; (⁗) quadruple prime
dkMathSymbols["\"] := "{u+2228}" ; (∨) logical or
dkMathSymbols["|"] := "{u+2228}" ; (∨) logical or
-dkMathSymbols[chr(0x00e7)] := "{u+2245}" ; (ç -> ≅) congruent to
-dkMathSymbols[chr(0x00c7)] := "{u+2247}" ; (Ç -> ≇) not congruent to
-dkMathSymbols[chr(0x00f6)] := "{u+2300}" ; (ö -> ⌀) diameter sign
-dkMathSymbols[chr(0x00d6)] := "{u+2300}" ; (Ö -> ⌀) diameter sign
-dkMathSymbols[chr(0x00f5)] := "{u+2261}" ; (õ -> ≡) identical to
-dkMathSymbols[chr(0x00d5)] := "{u+2262}" ; (Õ -> ≢) not identical to
dkMathSymbols[" "] := "{u+221a}" ; (√) square root
Send "{u+00e4}" ; (ä) a with diaeresis
else
Send "{u+00c4}" ; (Ä) A with diaeresis
- Send "{blind}{vkE8}" ; suppresses 'Right Alt + Shift' hotkey
}
>!q:: {
Send "{u+00e6}" ; (æ) letter ae
else
Send "{u+00c6}" ; (Æ) letter AE
- Send "{blind}{vkE8}" ; suppresses 'Right Alt + Shift' hotkey
}
>!w:: {
Send "{u+00e5}" ; (å) a with ring above
else
Send "{u+00c5}" ; (Å) A with ring above
- Send "{blind}{vkE8}"
}
>!z:: {
Send "{u+00e0}" ; (à) a with grave
else
Send "{u+00c0}" ; (À) A with grave
- Send "{blind}{vkE8}"
}
>!x:: {
Send "{u+00e1}" ; (á) a with acute
else
Send "{u+00c1}" ; (Á) A with acute
- Send "{blind}{vkE8}"
}
>!d:: {
Send "{u+00e2}" ; (â) a with circumflex
else
Send "{u+00c2}" ; (Â) A with circumflex
- Send "{blind}{vkE8}"
}
>!c:: {
Send "{u+00e7}" ; (ç) c with cedilla
else
Send "{u+00c7}" ; (Ç) C with cedilla
- Send "{blind}{vkE8}"
}
>!e:: {
Send "{u+00eb}" ; (ë) e with diaeresis
else
Send "{u+00cb}" ; (Ë) E with diaeresis
- Send "{blind}{vkE8}"
}
>!f:: {
Send "{u+00e8}" ; (è) e with grave
else
Send "{u+00c8}" ; (È) E with grave
- Send "{blind}{vkE8}"
}
>!g:: {
Send "{u+00e9}" ; (é) e with acute
else
Send "{u+00c9}" ; (É) E with acute
- Send "{blind}{vkE8}"
}
>!r:: {
Send "{u+00ea}" ; (ê) e with circumflex
else
Send "{u+00ca}" ; (Ê) E with circumflex
- Send "{blind}{vkE8}"
}
>!i:: {
Send "{u+00ef}" ; (ï) i with diaeresis
else
Send "{u+00cf}" ; (Ï) I with diaeresis
- Send "{blind}{vkE8}"
}
>!v:: {
Send "{u+00ec}" ; (ì) i with grave
else
Send "{u+00cc}" ; (Ì) I with grave
- Send "{blind}{vkE8}"
}
>!b:: {
Send "{u+00ed}" ; (í) i with acute
else
Send "{u+00cd}" ; (Í) I with acute
- Send "{blind}{vkE8}"
}
>!t:: {
Send "{u+00ee}" ; (î) i with circumflex
else
Send "{u+00ce}" ; (Î) I with circumflex
- Send "{blind}{vkE8}"
}
>!n:: {
Send "{u+00f1}" ; (ñ) n with tilde
else
Send "{u+00d1}" ; (Ñ) N with tilde
- Send "{blind}{vkE8}"
}
>!o:: {
Send "{u+00f6}" ; (ö) o with diaeresis
else
Send "{u+00d6}" ; (Ö) O with diaeresis
- Send "{blind}{vkE8}"
}
>!k:: {
Send "{u+0153}" ; (œ) ligature oe
else
Send "{u+0152}" ; (Œ) ligature OE
- Send "{blind}{vkE8}"
}
>!l:: {
Send "{u+00f8}" ; (ø) o with stroke
else
Send "{u+00d8}" ; (Ø) O with stroke
- Send "{blind}{vkE8}"
}
>!,:: {
Send "{u+00f2}" ; (ò) o with grave
else
Send "{u+00d2}" ; (Ò) O with grave
- Send "{blind}{vkE8}"
}
>!.:: {
Send "{u+00f3}" ; (ó) o with acute
else
Send "{u+00d3}" ; (Ó) O with acute
- Send "{blind}{vkE8}"
}
>!p:: {
Send "{u+00f4}" ; (ô) o with circumflex
else
Send "{u+00d4}" ; (Ô) O with circumflex
- Send "{blind}{vkE8}"
}
>!s:: {
Send "{u+00df}" ; (ß) small sharp s (Eszett)
else
Send "{u+1e9e}" ; (ẞ) capital sharp S (capital Eszett)
- Send "{blind}{vkE8}"
}
>!u:: {
Send "{u+00fc}" ; (ü) u with diaeresis
else
Send "{u+00dc}" ; (Ü) U with diaeresis
- Send "{blind}{vkE8}"
}
>!h:: {
Send "{u+00f9}" ; (ù) u with grave
else
Send "{u+00d9}" ; (Ù) U with grave
- Send "{blind}{vkE8}"
}
>!j:: {
Send "{u+00fa}" ; (ú) u with acute
else
Send "{u+00da}" ; (Ú) U with acute
- Send "{blind}{vkE8}"
}
>!y:: {
Send "{u+00fb}" ; (û) u with circumflex
else
Send "{u+00db}" ; (Û) U with circumflex
- Send "{blind}{vkE8}"
}
>!-:: {
Send "{u+00e3}" ; (ã) a with tilde
else
Send "{u+00c3}" ; (Ã) A with tilde
- Send "{blind}{vkE8}"
}
>!=:: {
Send "{u+00f5}" ; (õ) o with tilde
else
Send "{u+00d5}" ; (Õ) O with tilde
- Send "{blind}{vkE8}"
}
->!1::Send "{u+00a1}" ; (¡) inverted exclamation mark
->!+1:: {
- Send "{u+00b9}" ; (¹) superscript 1
- Send "{blind}{vkE8}" ; suppresses 'Right Alt + Shift' hotkey
-}
+>!1::Send "{u+00a1}" ; (¡) inverted exclamation mark
+>!+1::Send "{u+00b9}" ; (¹) superscript 1
->!2::Send "{u+00a9}" ; (©) copyright sign
->!+2:: {
- Send "{u+00b2}" ; (²) superscript 2
- Send "{blind}{vkE8}" ; suppresses 'Right Alt + Shift' hotkey
-}
+>!2::Send "{u+00a9}" ; (©) copyright sign
+>!+2::Send "{u+00b2}" ; (²) superscript 2
->!3::Send "{u+00a7}" ; (§) section sign
->!+3:: {
- Send "{u+00b3}" ; (³) superscript 3
- Send "{blind}{vkE8}"
-}
+>!3::Send "{u+00a7}" ; (§) section sign
+>!+3::Send "{u+00b3}" ; (³) superscript 3
->!4::Send "{u+00a3}" ; (£) pound sign
->!+4:: {
- Send "{u+00a5}" ; (¥) yen sign
- Send "{blind}{vkE8}"
-}
+>!4::Send "{u+00a3}" ; (£) pound sign
+>!+4::Send "{u+00a5}" ; (¥) yen sign
->!5::Send "{u+20ac}" ; (€) euro sign
->!+5:: {
- Send "{u+00a2}" ; (¢) cent sign (dollar)
- Send "{blind}{vkE8}"
-}
+>!5::Send "{u+20ac}" ; (€) euro sign
+>!+5::Send "{u+00a2}" ; (¢) cent sign (dollar)
->!9::Send "{u+201c}" ; (“) left double quotation mark
->!+9:: {
- Send "{u+2018}" ; (‘) left single quotation mark
- Send "{blind}{vkE8}"
-}
+>!9::Send "{u+201c}" ; (“) left double quotation mark
+>!+9::Send "{u+2018}" ; (‘) left single quotation mark
->!0::Send "{u+201d}" ; (”) right double quotation mark
->!+0:: {
- Send "{u+2019}" ; (’) right single quotation mark
- Send "{blind}{vkE8}"
-}
+>!0::Send "{u+201d}" ; (”) right double quotation mark
+>!+0::Send "{u+2019}" ; (’) right single quotation mark
->![::Send "{u+00ab}" ; («) left-pointing double angle quotation mark
->!{:: {
- Send "{u+2039}" ; (‹) left-pointing single angle quotation mark
- Send "{blind}{vkE8}"
-}
+>![::Send "{u+00ab}" ; («) left-pointing double angle quotation mark
+>!{::Send "{u+2039}" ; (‹) left-pointing single angle quotation mark
->!]::Send "{u+00bb}" ; (») right-pointing double angle quotation mark
->!}:: {
- Send "{u+203a}" ; (›) right-pointing single angle quotation mark
- Send "{blind}{vkE8}"
-}
+>!]::Send "{u+00bb}" ; (») right-pointing double angle quotation mark
+>!}::Send "{u+203a}" ; (›) right-pointing single angle quotation mark
->!;::Send "{u+00b0}" ; (°) degree sign
->!+;:: {
- Send "{u+00b7}" ; (·) middle dot
- Send "{blind}{vkE8}"
-}
+>!;::Send "{u+00b0}" ; (°) degree sign
+>!+;::Send "{u+00b7}" ; (·) middle dot
->!/::Send "{u+00bf}" ; (¿) inverted question mark
->!?:: {
- Send "{u+2026}" ; (…) horizontal ellipsis
- Send "{blind}{vkE8}"
-}
+>!/::Send "{u+00bf}" ; (¿) inverted question mark
+>!?::Send "{u+2026}" ; (…) horizontal ellipsis
->!space::Send "{u+00a0}" ; non-breaking space
->!+space:: {
- Send "{u+00a0}" ; non-breaking space
- Send "{blind}{vkE8}"
-}
+>!space::Send "{u+00a0}" ; non-breaking space
+>!+space::Send "{u+00a0}" ; non-breaking space
; Configuration : Dead Keys on 'Right Alt' and 'Right Alt + Shift'
>!6:: {
- Send "{blind}{vkE8}" ; suppresses circles around mouse pointer
ih := InputHook("L1", dkEndKeys)
ih.Start()
ih.Wait()
if dkCircumflex.Has(fSendSecondChar(ih.Input))
Send dkCircumflex[fSendSecondChar(ih.Input)]
- Send "{blind}{vkE8}" ; suppresses 'Right Alt + Shift' hotkey (for second character with 'Right Alt + Shift')
}
>!+6:: {
- Send "{blind}{vkE8}" ; suppresses 'Right Alt + Shift' hotkey
ih := InputHook("L1", dkEndKeys)
ih.Start()
ih.Wait()
if dkCaron.Has(fSendSecondChar(ih.Input))
Send dkCaron[fSendSecondChar(ih.Input)]
- Send "{blind}{vkE8}" ; suppresses 'Right Alt + Shift' hotkey (for second character with 'Right Alt + Shift')
}
>!7:: {
- Send "{blind}{vkE8}"
ih := InputHook("L1", dkEndKeys)
ih.Start()
ih.Wait()
if dkDotAbove.Has(fSendSecondChar(ih.Input))
Send dkDotAbove[fSendSecondChar(ih.Input)]
- Send "{blind}{vkE8}"
}
>!+7:: {
- Send "{blind}{vkE8}"
ih := InputHook("L1", dkEndKeys)
ih.Start()
ih.Wait()
if dkMacronStroke.Has(fSendSecondChar(ih.Input))
Send dkMacronStroke[fSendSecondChar(ih.Input)]
- Send "{blind}{vkE8}"
}
>!8:: {
- Send "{blind}{vkE8}"
ih := InputHook("L1", dkEndKeys)
ih.Start()
ih.Wait()
if dkCedillaOgonek.Has(fSendSecondChar(ih.Input))
Send dkCedillaOgonek[fSendSecondChar(ih.Input)]
- Send "{blind}{vkE8}"
}
>!+8:: {
- Send "{blind}{vkE8}"
ih := InputHook("L1", dkEndKeys)
ih.Start()
ih.Wait()
if dkBreveSpecial.Has(fSendSecondChar(ih.Input))
Send dkBreveSpecial[fSendSecondChar(ih.Input)]
- Send "{blind}{vkE8}"
}
>!':: {
- Send "{blind}{vkE8}"
ih := InputHook("L1", dkEndKeys)
ih.Start()
ih.Wait()
if dkAcuteAccent.Has(fSendSecondChar(ih.Input))
Send dkAcuteAccent[fSendSecondChar(ih.Input)]
- Send "{blind}{vkE8}"
}
>!":: {
- Send "{blind}{vkE8}"
ih := InputHook("L1", dkEndKeys)
ih.Start()
ih.Wait()
if dkDiaeresis.Has(fSendSecondChar(ih.Input))
Send dkDiaeresis[fSendSecondChar(ih.Input)]
- Send "{blind}{vkE8}"
}
>!`:: {
- Send "{blind}{vkE8}"
ih := InputHook("L1", dkEndKeys)
ih.Start()
ih.Wait()
if dkGraveAccent.Has(fSendSecondChar(ih.Input))
Send dkGraveAccent[fSendSecondChar(ih.Input)]
- Send "{blind}{vkE8}"
}
>!~:: {
- Send "{blind}{vkE8}"
ih := InputHook("L1", dkEndKeys)
ih.Start()
ih.Wait()
if dkTilde.Has(fSendSecondChar(ih.Input))
Send dkTilde[fSendSecondChar(ih.Input)]
- Send "{blind}{vkE8}"
}
>!\:: {
- Send "{blind}{vkE8}"
ih := InputHook("L1", dkEndKeys)
ih.Start()
ih.Wait()
if dkSymbols.Has(fSendSecondChar(ih.Input))
Send dkSymbols[fSendSecondChar(ih.Input)]
- Send "{blind}{vkE8}"
}
>!|:: {
- Send "{blind}{vkE8}"
ih := InputHook("L1", dkEndKeys)
ih.Start()
ih.Wait()
if dkCurrency.Has(fSendSecondChar(ih.Input))
Send dkCurrency[fSendSecondChar(ih.Input)]
- Send "{blind}{vkE8}"
}
>!m:: {
- Send "{blind}{vkE8}"
ih := InputHook("L1", dkEndKeys)
ih.Start()
ih.Wait()
if dkGreekAlphabet.Has(fSendSecondChar(ih.Input))
Send dkGreekAlphabet[fSendSecondChar(ih.Input)]
- Send "{blind}{vkE8}"
}
>!+m:: {
- Send "{blind}{vkE8}"
ih := InputHook("L1", dkEndKeys)
ih.Start()
ih.Wait()
if dkMathSymbols.Has(fSendSecondChar(ih.Input))
Send dkMathSymbols[fSendSecondChar(ih.Input)]
- Send "{blind}{vkE8}"
}